Taskbar Media Player

ABSTRACT

A system and method for controlling media through a user interface integrated within a taskbar is described. This system and method enable a user to control media while a user interface of another application remains in perspective. Further, this system includes a taskbar media player, which can play media and enable a user to control the play of that media from within a taskbar.

TECHNICAL FIELD

[0001] This invention relates to a system and method for playing andcontrolling media through a taskbar.

BACKGROUND

[0002] Computer users like to multitask. That is, they like to interactwith more than one service at once. Some applications, such asMicrosoft's® MSN8 Internet Software®, allow users to interact withmultiple types of services without needing to interact with multipleapplications. MSN8 allows, for example, a user to browse the Internetand at the same time enjoy and control media, like hear and control asong, or see and control a video clip. Most applications, however, donot provide a user with a media player to enjoy media at the same timeas perform other tasks in the application. For example, most wordprocessing and email applications—in which many users spend a great dealof time working—do not provide users with a media player to enjoy andcontrol media.

[0003] Users can work around this problem with non-media applications insome limited ways, however. A user can open a media player to providemedia-playing services. Once interacting with the media player's window(and thus not the non-media application's window) the user can have themedia player play media, like a video clip or a song. Once the media isplaying, the user can then switch back to the non-media application towork in and interact with the non-media application, and the media cancontinue playing.

[0004] One problem with this, however, is that to control the mediabeing played, the user has to switch perspective from thenon-media-playing application back to the media player. A user interfaceor window that is not in perspective cannot fully interact with a user,such as by receiving input from a user and actively display informationto the user.

[0005] Thus, the user has to cease working in and interacting with thenon-media application to interact with the media player's window so thatthe user can control the media being played. The user often cannotchange the volume, advance to another song on a CD being played, orotherwise control the media without first disengaging from the non-mediaapplication's window, initializing engagement with the media player'swindow to put it in perspective, and make the control change. After thisthe user still has to re-engage with the non-media application's windowto go back to working in and interacting with the non-media application.

[0006] At the least, most users have to take the time and effort toclick on the media player's window to put it in perspective, make thecontrol (such as by clicking on a fast forward button), and click on theother application to bring it back into perspective. This can be threemouse-clicks, for each of which the user may have to locate and move themouse to a particular spot. This can take an appreciable amount of time,in part because the user has to perform it, but also if a computersystem running these applications takes time to bring these applicationsin and out of perspective. Thus, this switching back and forth betweenapplications in order to control media can be time consuming andinconvenient for a user.

[0007] User interfaces for typical media-playing applications can alsobe inconvenient. Many user interfaces for media-playing applicationstake up significant space on the screen, possibly interfering with theuser's interaction with the non-media-playing application.

[0008] In FIG. 1, for example, a media-playing application's window 102obscures a non-media-playing application's window 104.

[0009] Also, the controls on these user interfaces can become obscuredby other user interfaces (like windows), making them hard to find. If,for example, the non-media-playing application's window 104 were broughtback into perspective, such as by bringing it into focus (not shown),the window 104 could cause a media-playing application's controls 106 tobe obscured by the non-media-playing application's window 104. This isbecause a window or user interface that is in focus will usually bebrought to the forefront, thereby potentially obscuring other windowsand user interfaces.

[0010] This further inconvenience makes typical media-playingapplications difficult to use when also using a non-media-playingapplication. With typical media-playing applications, the user has tolocate the controls, which could be obscured or moved, bring intoperspective the user interface (such as by clicking on the media-playingapplication's window), select a service through the control, and then goback to the non-media-playing application's window in which the userwishes to continue working.

[0011] Current systems and methods do not provide users with sufficientability to control media unless the application being used contains amedia player. For applications that do not, users often cannotconveniently and quickly control media when also working in anotherapplication.

SUMMARY

[0012] The following description and figures describe a system andmethod for playing and controlling media with a player integrated into ataskbar. This system and method enables a user to control media quicklyand easily through controls in a taskbar, as well as view visual mediain a visual space connected to the taskbar.

BRIEF DESCRIPTION OF THE DRAWINGS

[0013]FIG. 1 illustrates exemplary user interfaces for anon-media-playing application and a media-playing application.

[0014]FIG. 2 illustrates an exemplary user interface for anon-media-playing application and a taskbar media player's userinterface, the taskbar media player showing a graphic in its visualspace.

[0015]FIG. 3 illustrates a computer system for a taskbar media player.

[0016]FIG. 4 illustrates an architecture showing a non-media-playingapplication's process, an operating system shell process, and amedia-playing server's process and applications running within them,which are within the memory of the computer system of FIG. 3.

[0017]FIG. 5 illustrates an exemplary user interface of a taskbar mediaplayer showing a visualization in a visual space.

[0018]FIG. 6 illustrates an exemplary user interface of a taskbar mediaplayer showing metadata in a visual space.

[0019]FIG. 7 illustrates an exemplary user interface of a taskbar mediaplayer showing dialog boxes in a visual space for selection of metadata.

[0020]FIG. 8 is a flow diagram of an exemplary method for controllingmedia through a user interface without switching perspective to thatuser interface.

[0021]FIG. 9 is a flow diagram of an exemplary method for creating andusing a taskbar media player.

[0022]FIG. 10 is a block diagram of a computer system that is capable ofimplementing a method for controlling media through a taskbar player.

[0023] The same numbers are used throughout the disclosure and figuresto reference like components and features.

DETAILED DESCRIPTION

[0024] The following disclosure describes a media player integrated intoa taskbar. This taskbar media player and its related methods enable auser to control media quickly and easily, even if the user is working inanother application. Unlike current media players, the taskbar mediaplayer's controls do not get in the way of other applications' windows,and do not require a user to bring the player into perspective or ceaseperspective with other applications in order to interact with it. Thissaves a user time and effort. The taskbar player also includes a visualspace for viewing visual media, which can make viewing media while alsoworking in another application more convenient than in the current stateof the art. In short, this taskbar player and related methods allow auser to more easily control and view media.

[0025] In FIG. 1, for example, the non-media-playing application'swindow 104 is obscured by the media-playing application's controls 106.If, on the other hand, the non-media-playing application were broughtback into perspective (not shown), the window 104 could obscure themedia-playing application's controls 106 and window 102.

[0026] In FIG. 2, however, an example of a taskbar media player's userinterface 202 is shown. In this example the player user interface 202includes a visual space 204 displaying a similar graphic as shown inFIG. 1. The player user interface 202 also includes controls 206, shownintegrated into an exemplary taskbar user interface 208 shown at thebottom of an exemplary screen shot 210. In this example the playercontrols 206 remain visible and ready for use even if thenon-media-playing application and its window 104 are in perspective.

[0027] Exemplary System

[0028] Overview

[0029]FIG. 3 shows an exemplary system 300 usable to create a taskbarmedia player and facilitate related methods. The system 300 includes adisplay 302 having a screen 304, a user-input device 306, and a computer308. The user-input device 306 can include any device allowing acomputer to receive input from a user, such as a keyboard 310, otherdevices 312, and a mouse 314. The other devices 312 can include a touchscreen, a voice-activated input device, a track ball, and the like. Theuser can send input via the user-input device 306 to the computer 308 tocontrol media, for instance. The user can use the display 302 and itsscreen 304 to view user interfaces, including those containing visualmedia. FIGS. 1, 2, and 5 show examples of the screen 304.

[0030] The computer 308 includes components shown in block 309, such asa processing unit 316 to execute applications and a memory 318containing various applications and the processes that contain them. Thememory 318 includes volatile and non-volatile memory and theapplications described in FIG. 4.

[0031]FIG. 4 shows applications included within the memory 318 of FIG.3, communication between these programs (shown as solid lines), andprocess boundaries (shown as dashed lines). The memory 318 includes anoperating system 320, a non-media-playing application 322, a taskbarplayer 324, and a media-playing server 326. The non-media-playingapplication 322 can be one of many different types. One exemplary typeis a Microsoft® Exce® spread-sheet application shown in FIGS. 1 and 2.

[0032] The Taskbar Player

[0033] The taskbar player 324 includes a player deskband 328 and aplayer controller 330. The player deskband 328 communicates with anoperating system shell 332, which in turn communicates with theoperating system 320.

[0034] The operating system shell 332 is an application that implementsa user interface that is tightly integrated with the operating system320. This tight integration allows the operating system shell 332 andthe operating system shell process in which it runs additionalflexibility not available to other processes and the applications thatrun within them.

[0035] The player deskband 328 is a program module that communicateswith the operating system shell 332. The player deskband 328 determinesparameters for how the taskbar player 324 is to operate with theoperating system shell 332. The player deskband 328 stores theseparameters for later use by the taskbar player 324 in a skin file 334.

[0036] This skin file 334 helps the taskbar player 324 build the playeruser interface 202. Parameters held in the skin file 334, for instance,include a size and position in the operating system shell's 332 userinterface 208 that the taskbar player 324's user interface 202 isallotted. The skin file 334 and the player user interface 202 will bediscussed in greater detail below.

[0037] Through the communication between the player deskband 328, theoperating system shell 332, and the operating system 320, the playerdeskband 328 enables the player user interface 202 (and the taskbarplayer 324) to be integrated with the operating system shell 332.

[0038] This integration with the operating system shell 332 allows, forinstance, the taskbar player's 324 controls 206 to not take up availablescreen space beyond that used by the operating system shell 332. Thecontrols 206 do not have to take Up available space because the controls206 can be integrated into the existing user interface used by theoperating system shell 332 (here the taskbar user interface 208).Because the controls 206 do not have to take up available screen space,the controls 206 do not have to alter an existing layout or behavior ofother application's user interfaces. The controls 206, for instance, canbe implemented such that they do not obscure or require movement orresizing of other user interfaces (such as a non-media-playingapplication user interface 212 of FIG. 2).

[0039] Also by being integrated, the taskbar player 324 operates withthe operating system shell 332 and executes within the shell process,allowing the taskbar player 324 to interact with a user but still allowinteraction between the user and an in-perspective application orprocess, such as the non-media-playing application 322.

[0040] The operating system shell 332 can interact with a user withoutbeing in perspective, even though it can appear to be in perspective.Thus, to a user the taskbar player 324 acts as if it is in perspective,allowing the user to interact with it's player user interface 202without first selecting the player user interface 202 to put it intoperspective. Also, the user does not have to leave the non-media-playingapplication 322, thereby putting it out of perspective, to interact withoperating system shell 332 (and thus the integrated taskbar player 324).

[0041] The player deskband 328 also can build the skin file 334. Theskin file 334 contains parameters useful in building the player userinterface 202 into the taskbar user interface 208. These parameters caninclude text, art, and script parameters, which can govern the text usedin, the graphics and look of, and various other parameters governing theplayer user interface 202. The other parameters can include theposition, size, and operating specifications for the player userinterface 202. These other parameters can be attained by the playerdeskband 328 through communication with the operating system shell 332.In one implementation, a user can choose and alter text, art, and scriptparameters so that the player user interface 202 conforms to the user'spreferences. These preferences can be retained by the taskbar player 324or the operating system shell 332.

[0042] Also through this communication, the player deskband 328 caninstruct the operating system shell 332 to dedicate a minimum size and aparticular position for the player user interface 202 in the operatingsystem shell's 332 user interface 208.

[0043] The player controller 330 implements the player user interface202. The player controller 330, in one implementation, is an ActiveXcontrol, which is integrated into the taskbar player 324. The playeruser interface 202 creates the taskbar player visual space 204 and thecontrols 206 from which a user can select various media services. Thetaskbar player visual space 204 is a space on the screen 304, such as ina window, in which visual media can be displayed.

[0044]FIG. 5 shows an example of the screen 304, the player userinterface 202, the taskbar player visual space 204, and the controls206.

[0045] The player user interface 202 can, through the controls 206 orotherwise, enable a user to control media. The controls 206 includevarious control buttons for easy selection of a media-playing service. Auser can, for instance, use the mouse 314 to click on the controlbuttons on the player controls 206.

[0046] In one implementation, the user can select the following servicesby clicking on (or, in some cases, hovering their mouse icon over) thefollowing control buttons: that the media file be paused with a pausecontrol button 502; that the media file be stopped with a stop controlbutton 504; that the taskbar player 324 go to a previous track in themedia file (such as a compact disc playing album tracks) with a previoustrack control button 506; similarly, that the taskbar player 324 go to anext track with a next track control button 508; that a volume for themedia file be muted/unmuted with a mute control button 510; that thevolume for the media file be increased or decreased with a volumecontrol button 512; that metadata for the media file be presented (oroptions for metadata) with a metadata control button 514; that thetaskbar player visual space 204 be hidden or shown with visual spacecontrol button 520; that the taskbar player 324 switch play of the mediafile to a larger, more advanced media player like the media-playingserver 326 with an advanced services control button 518; or that a menufor the media library 342 be presented with a library button 516.

[0047] The player user interface 202 can also enable the user to play amedia file by allowing the user to drag-and-drop a system object (e.g.,an icon) representing a media file onto the controls 206, the taskbarplayer visual space 204, or another part of the player user interface202.

[0048] The taskbar player 324 is capable of playing back audio files,visual files, a combination of both (like a music video), television,photos, and the like. The taskbar player 324 is also capable ofpresenting metadata, like information about songs on a CD being playedor other media accessible by the taskbar player 324.

[0049]FIG. 6 shows an example of metadata presented through the playeruser interface 202, shown in the taskbar player visual space 204. Thismetadata includes facts about a particular song, here that the songbeing played is entitled “Highway Blues”, was composed by “Marc Seales”,and is from an album named “Speakin' Out.” The metadata can be accessedby the taskbar player 324 through the media-playing server 326, internalto the taskbar player 324, or otherwise. The metadata can be selectedfor viewing by the user with the metadata control button 514 shown inFIG. 5.

[0050] The player user interface 202 can also enable the user to searchthrough media (and related metadata) in the media library 342. In oneimplementation, the player user interface 202 enables the user to pickthrough metadata.

[0051]FIG. 7 shows an example of one way in which the player userinterface 202 enables a user to pick through metadata within a medialibrary 342. FIG. 7 shows the library button 516 and a media selectiondialog box 702 allowing the user to select various media categories.FIG. 7 also shows a list of media files selected by the user through themedia selection dialog box 702 (“Auto Playlists”), shown in a mediafiles dialog box 704. This list includes information about playlists ofmedia files. It includes information about files the user has ratedhighly, plays often, has not played recently, listens to on weekdays,listens to on weekends, has not played, has not rated yet, and dislikes.It also includes information about files that are new to the user or areprotected, as well as information about high and low bitrate media filesavailable.

[0052] As shown in this example and further above, the taskbar player324 enables a user to enjoy many services with an easy-to-use graphicalinterface.

[0053] The Media-Playing Server

[0054] The media-playing server 326 includes a playback engine 338, aserver visual space 340, and the media library 342. An example of theserver visual space 340 is shown in FIG. 1. The server visual space 340comprises a portion of the computer's 308 graphical display area thatthe media-playing server 326 governs and through which it presentsgraphical information to the user. The space is typically a window or aportion of a window.

[0055] The playback engine 338 renders media files in the player visualspace 204 and plays audio. It can also render and play media for themedia-playing server 326. The playback engine 338 is shown in FIG. 4 aspart of the media-playing server 326, but can be internal to the taskbarplayer 324 or run inside an operating system shell process in which thetaskbar player 324 runs.

[0056] The playback engine 338, in this implementation, runs as part ofthe media-playing server 326 to enable a user to switch play of a mediafile to another process (like the server process of FIG. 4). Thus, ifthe user wants to expand the media being played to a larger space withadvanced services, the user can do so. The taskbar player 324 enablesthe user, such as with the advanced services control button 518 on thecontrols 206 as shown in FIG. 5, to switch rendering of the media fileto the media-playing server 326 to enjoy more advanced services. Anexample of the media-playing server 326 presenting a media file in theserver visual space 340 is shown in FIG. 1.

[0057] The taskbar player 324 can use the playback engine 338 for otherservices, like rendering metadata or visualizations in the taskbarplayer visual space 204. In the implementation shown in FIG. 4, however,the taskbar player 324 renders metadata and visualizations internally.

[0058] The taskbar player's 324 player controller 330 can use the medialibrary 342 in the server process shown in FIG. 4. The taskbar player324 can also use its own library (not shown).

[0059] The above devices and applications are merely representative, andother known devices and programs may be substituted for or added tothose shown in FIGS. 3 and 4. One example of another known device thatcan be substituted for those shown in FIGS. 3 and 4 is the device shownin FIG. 10.

[0060] Control of Media

[0061] Overview

[0062]FIG. 8 shows a flow diagram 800 for enabling a user to controlmedia while working in a non-media-playing application. This and thefollowing flow diagram are illustrated as series of blocks representingoperations or acts performed by the system 300. These diagrams may beimplemented in any suitable hardware, software, firmware, or combinationthereof. In the case of software and firmware, they represent sets ofoperations implemented as computer-executable instructions stored inmemory and executable by one or more processors.

[0063] In the flow diagram 800, the system 300 enables a user tointeract with the player user interface 202, thereby allowing control ofmedia, without losing perspective on the non-media-playing application322. The user is able to continue working in the non-media-playingapplication 322 while also being able to control media.

[0064] The system 300 also enables a user to interact with the playeruser interface 202 without needing to bring the player user interface202 into perspective.

[0065] In one implementation, the system enables a user to interact withthe player user interface 202 without needing to bring the player userinterface 202 into focus.

[0066] At block 802, the system 300 receives input through the playeruser interface 202 to control media without the player user interface202 being in perspective and/or other applications losing perspective.By so doing, the system 300 saves the user time and energy. The user canselect, with as little as one command (such as a mouse click), to stop,start, pause, move to next track, and alter the media's visual space orvolume. Further, the user can do so while working in thenon-media-playing application 322 without interrupting his or her workwith the non-media-playing application's 322 window or user interface.

[0067]FIG. 2 shows an example of the screen 304 displaying an example ofthe non-media-playing application user interface 212 generated by thenon-media-playing application 322, and the player user interface 202.Here the non-media-playing application user interface 212 remains inperspective, thereby allowing a user to interact and otherwise work inthe non-media-playing application 322. By being in perspective, thenon-media-playing application 322 can continue to interact with theuser. This interaction can include display of ongoing functions, likenew email being received, computations being run, and results of thecomputations being shown. This interaction can also include enabling theuser to input commands and otherwise interact with the non-media-playingapplication 322.

[0068] While keeping the non-media-playing application 322 inperspective, the system 300 allows the user to interact with the playeruser interface 202 to control media. In this example a media file beingplayed includes a graphic, shown in the taskbar player visual space 204of FIG. 2. The user can control the media played through selectingservices with control buttons on the controls 206 (such as the buttonsshown in FIG. 5), drop-down lists, keystroke-entered commands, and inother manners.

[0069] In one implementation, the system 300 enables a user to controlmedia as if the media user interface were part of or integrated with thenon-media-playing application 322. In this implementation, the system300 enables the user to control media running in another process (herethe operating system shell process) while interacting with thenon-media-playing process without interrupting the user's interactionwith the non-media-playing process. Thus, the system 300 allowsreception of input into the operating system shell process whileretaining perspective on the non-media-playing application 322 runningin the non-media-playing process (shown in FIG. 4).

[0070] At block 804, the system 300 controls the media in accordancewith input received from the user. The system 300 is able to implementthe control received by the taskbar player 324 while retainingperspective on the non-media-playing application 322 executing inanother process.

[0071] A user can, for example, work in the non-media-playingapplication's 322 user interface 212 (which is in perspective), such asby typing information or selecting files, thereby interacting with thenon-media-playing application 322. Then, while retaining perspective andfull interactive capabilities with the non-media-playing application's322 user interface 212, click on the controls 206 to selectmedia-playing services. Following this selection, the taskbar player 324can implement the selected service, such as forwarding to another trackon an audio CD. The user is able to continue interacting with thenon-media-playing application's 322 user interface 212 without having tobring back into perspective a window of the user interface 212 orperform other actions that may interrupt the user. This allows the userto efficiently work with the non-media-playing application 322 whilealso interacting with and controlling media running in the taskbarplayer 324.

[0072] Implementing the Taskbar Player

[0073]FIG. 9 shows an exemplary implementation in flow diagram 900 forcreating and using the taskbar player 324.

[0074] In block 902, the system 300 registers the taskbar playerdeskband 328. Then the operating system shell 332 creates and hosts thetaskbar player deskband 328 (block 904). This deskband 328 cancommunicate with the operating system shell 332. The deskband 328communicates with the operating system shell 332 to gain parameters forhow the system 300 is to structure the player user interface 202 of theplayer controller 330. These parameters can be included in the skin file334.

[0075] In block 906, the system 300 installs the player controller 330.This player controller 330 is responsible for building the player userinterface 202, the taskbar player visual space 204, and the controls206.

[0076] In block 908, the deskband 328 communicates with the controller330 to relay the parameters for the player user interface 202. Theseparameters can be retained within the skin file 334. The skin file 334includes the location, size, and various appearance parameters for theplayer user interface 202 to conform.

[0077] In block 910, the player controller 330 creates the userinterface 202 conforming to the parameters in the skin file 334.

[0078]FIG. 2 shows an example of the player user interface 202. Here theplayer user interface 202 is built with a certain size (measured inpixels), a certain location (to the far right in the taskbar userinterface 208), with a certain appearance (the controls 206 beingcolored grey and the manner to select services being buttons), and withthe taskbar player visual space 204 having a particular size andlocation directly above the controls 206.

[0079] In block 912, the system 300 looks up the playback engine 338.The system 300 can use the player controller 330 to communicate with theoperating system 320 to find the playback engine 338. The operatingsystem 320 can then search through the server process to find themedia-playing server 326 and/or the playback engine 338.

[0080] At block 914, if the playback engine 338 is not alive, the system300 proceeds along the “No” path to block 916. If it is, it proceedsalong the “Yes” path to block 918.

[0081] At block 916, the system 300 creates the playback engine 338 and,in some cases also the media-playing server 326.

[0082] At block 918 the system 300 hooks the player controller 330 tothe playback engine 338. Here, the taskbar player 324 is communicatingwith the media-playing server 326, and the playback engine 338 is hookedto the player controller 330. The playback engine 338 can be hooked tothe player controller 330 using a messaging system or architecture ofthe operation system 320. In one implementation, where the operatingsystem 320 is a Windows® operating system, Windows® messaging is used.These are hooked so that the playback engine can render a visual mediafile or play an audio media file (or both) for the player controller330.

[0083] Thus, in cases where the playback engine 338 is asked to rendervideo for the player controller 330, the playback engine 338 rendersvideo directly to the taskbar player visual space 204, which the taskbarplayer visual space 204 then presents (block 920).

[0084] In cases where the playback engine 338 is playing back audio, itcommunicates the audio to speakers and the like, rather than the playercontroller 330 (block 920), though non-audio (such as accompanying videoor information about or accompanying the audio) is still communicated tothe player controller 330.

[0085] The playback engine 338 runs in another process and can runwithin the media-playing server 326 to allow a user to easily andquickly switch presentation of video or playback of audio to themedia-playing server 326. This media-playing server 326 can offer manyadvanced services, which the user may wish to enjoy. Having the playbackengine 338 run in this other process is not necessary for use of thetaskbar player 324, but can aid the user in switching back and forthbetween the media-playing server 326 and the taskbar player 324.

[0086] A Computer System

[0087]FIG. 10 shows an exemplary computer system that can be used toimplement the processes described herein. Computer 1042 includes one ormore processors or processing units 1044, a system memory 1046, and abus 1048 that couples various system components including the systemmemory 1046 to processors 1044. The bus 1048 represents one or more ofany of several types of bus structures, including a memory bus or memorycontroller, a peripheral bus, an accelerated graphics port, and aprocessor or local bus using any of a variety of bus systems. The systemmemory 1046 includes read only memory (ROM) 1050 and random accessmemory (RAM) 1052. A basic input/output system (BIOS) 1054, containingthe basic routines that help to transfer information between elementswithin computer 1042, such as during start-up, is stored in ROM 1050.

[0088] Computer 1042 further includes a hard disk drive 1056 for readingfrom and writing to a hard disk (not shown), a magnetic disk drive 1058for reading from and writing to a removable magnetic disk 1060, and anoptical disk drive 1062 for reading from or writing to a removableoptical disk 1064 such as a CD ROM or other optical media. The hard diskdrive 1056, magnetic disk drive 1058, and optical disk drive 1062 areconnected to the bus 1048 by an SCSI interface 1066 or some otherappropriate interface. The drives and their associated computer-readablemedia provide nonvolatile storage of computer-readable instructions,data structures, program modules and other data for computer 1042.Although the exemplary environment described herein employs a hard disk,a removable magnetic disk 1060 and a removable optical disk 1064, itshould be appreciated by those skilled in the art that other types ofcomputer-readable media which can store data that is accessible by acomputer, such as magnetic cassettes, flash memory cards, digital videodisks, random access memories (RAMs), read only memories (ROMs), and thelike, may also be used in the exemplary operating environment.

[0089] A number of program modules may be stored on the hard disk 1056,magnetic disk 1060, optical disk 1064, ROM 1050, or RAM 1052, includingan operating system 1070, one or more application programs 1072 (such asthe taskbar player 324), other program modules 1074, and program data1076. A user may enter commands and information into computer 1042through input devices such as a keyboard 1078 and a pointing device1080. Other input devices (not shown) may include a microphone,joystick, game pad, satellite dish, scanner, or the like. These andother input devices are connected to the processing unit 1044 through aninterface 1082 that is coupled to the bus 1048. A monitor 1084 or othertype of display device is also connected to the bus 1048 via aninterface, such as a video adapter 1086. In addition to the monitor,personal computers typically include other peripheral output devices(not shown) such as speakers and printers.

[0090] Computer 1042 commonly operates in a networked environment usinglogical connections to one or more remote computers, such as a remotecomputer 1088. The remote computer 1088 may be another personalcomputer, a server, a router, a network PC, a peer device or othercommon network node, and typically includes many or all of the elementsdescribed above relative to computer 1042. The logical connectionsdepicted in FIG. 10 include a local area network (LAN) 1090 and a widearea network (WAN) 1092. Such networking environments are commonplace inoffices, enterprise-wide computer networks, intranets, and the Internet.

[0091] When used in a LAN networking environment, computer 1042 isconnected to the local network through a network interface or adapter1094. When used in a WAN networking environment, computer 1042 typicallyincludes a modem 1096 or other means for establishing communicationsover the wide area network 1092, such as the Internet. The modem 1096,which may be internal or external, is connected to the bus 1048 via aserial port interface 1068. In a networked environment, program modulesdepicted relative to the personal computer 1042, or portions thereof,may be stored in the remote memory storage device. It will beappreciated that the network connections shown are exemplary and othermeans of establishing a communications link between the computers may beused.

[0092] Generally, the data processors of computer 1042 are programmed bymeans of instructions stored at different times in the variouscomputer-readable storage media of the computer. Programs and operatingsystems are typically distributed, for example, on floppy disks orCD-ROMs. From there, they are installed or loaded into the secondarymemory of a computer. At execution, they are loaded at least partiallyinto the computer's primary electronic memory. The invention describedherein includes these and other various types of computer-readablestorage media when such media contain instructions or programs forimplementing the blocks described below in conjunction with amicroprocessor or other data processor. The invention also includes thecomputer itself when programmed according to the methods and techniquesdescribed herein.

[0093] For purposes of illustration, programs and other executableprogram components such as the operating system are illustrated hereinas discrete blocks, although it is recognized that such programs andcomponents reside at various times in different storage components ofthe computer, and are executed by the data processor(s) of the computer.

[0094] Conclusion

[0095] The above-described system includes a taskbar player, whichenables a user to control and play media from a taskbar. The taskbarplayer and related methods also enable the user to control media whileremaining in perspective with another application. Although theinvention has been described in language specific to structural featuresand/or methodological acts, it is to be understood that the inventiondefined in the appended claims is not necessarily limited to thespecific features or acts described. Rather, the specific features andacts are disclosed as exemplary forms of implementing the claimedinvention.

1. A user interface comprising: a graphical interface that enables auser to select media-playing services, wherein the graphical interfaceis integrated into an operating system shell's user interface.
 2. Theuser interface of claim 1, wherein the graphical interface furtherenables the user to select media-playing services with a single click ofa mouse.
 3. The user interface of claim 1, wherein the graphicalinterface further enables the user to select media-playing services witha single click of a mouse when another application running in anotherprocess is in perspective.
 4. The user interface of claim 3, wherein theperspective includes the other application being in focus.
 5. The userinterface of claim 1, wherein the graphical interface further enablesthe user to select media-playing services without altering a perspectiveof another application running in another process.
 6. The user interfaceof claim 1, wherein the graphical interface includes control buttons forselection of the media-playing services.
 7. The user interface of claim1, wherein the graphical interface includes control buttons forselection of the media-playing services including services that stop andpause a first media file being played and start a second media file. 8.The user interface of claim 1, wherein the graphical interface includesa control button for selection of the media-playing services including aservice that alters a size for a presenting of a visual aspect of amedia file.
 9. The user interface of claim 1, wherein the graphicalinterface includes a control button for selection of the media-playingservices including a service that alters a volume for a playback of anaudio aspect of a media file.
 10. The user interface of claim 1, furthercomprising: a visual space for presenting of visual media.
 11. The userinterface of claim 1, further comprising: a visual space for presentingof visual media; wherein the graphical interface enables the user toselect media-playing services to alter the presenting in the visualspace.
 12. The user interface of claim 1, further comprising: a visualspace for presenting metadata associated with a media file.
 13. The userinterface of claim 1, further comprising: a visual space for presentingmetadata associated with a media file, wherein the graphical interfaceenables the user to select media-playing services to present metadataassociated with the media file.
 14. A system comprising: a media-playingapplication in computer memory executing in a shell process of anoperating system, wherein the media-playing application is capable ofenabling a user to control media through a user interface integratedinto a taskbar associated with the shell process.
 15. The system ofclaim 14, wherein preferences for displaying the user interface in thetaskbar are retained by the media-playing application for future use.16. The system of claim 14, wherein the media-playing application iscapable of receiving preferences for how the user interface is displayedand used that are received from the user through another applicationexecuting in the shell process.
 17. The system of claim 14, furthercomprising a player deskband, wherein the player deskband is capable ofreceiving preferences relating to the user interface and sending thepreferences to the media-playing application.
 18. The system of claim14, wherein the media-playing application comprises a deskband and acontroller, the deskband configured to communicate with the shellprocess and the operating system, the controller configured to enablethe user to control media through the user interface.
 19. The system ofclaim 14, wherein the media-playing application comprises a visual spaceand a user interface, the visual space usable for presenting visualmedia, the user interface capable of enabling the user to control thepresenting.
 20. The system of claim 14, wherein the media-playingapplication is capable of creating the user interface to have a minimumvisual size on the taskbar.
 21. The system of claim 14, wherein themedia-playing application is capable of creating the user interfacefollowing a skin file containing text, art, and script parameters. 22.The system of claim 14, wherein the media-playing application is capableof presenting visual media.
 23. The system of claim 14, wherein themedia-playing application is capable of presenting audio media.
 24. Thesystem of claim 14, wherein the media-playing application is capable ofpresenting metadata associated with a media file being presented by themedia-playing application.
 25. A system comprising: a controller; aplayback module; a visual space; and a user interface, wherein: thecontroller is capable of creating the user interface; the user interfaceis integrated within an operating-system shell's user interface and iscapable of enabling a user to input preferences for play of a mediafile; and the playback module is capable of rendering the media file toenable the controller to present the media file in the visual space. 26.The system of claim 25, further comprising a deskband, wherein thedeskband is capable of aiding the controller in determining parametersfor the user interface to conform by communicating with an operatingsystem that governs the operating-system shell's user interface.
 27. Thesystem of claim 25, further comprising a deskband, wherein the deskbandis capable of building a file containing parameters for the userinterface to conform to an operating-system shell governing theoperating-system shell's user interface.
 28. The system of claim 25,wherein the visual space is graphically connected to the user interface.29. The system of claim 25, wherein the user interface includesmedia-playing services that stop, play, pause, skip forward or backwardthrough, and change to a next or previous track of the media file. 30.The system of claim 25, wherein the user interface includesmedia-playing services that stop, play, and pause the media file. 31.The system of claim 25, wherein the user interface is capable ofenabling the user to input preferences through dragging and dropping anicon representing a media file onto the visual space or the userinterface.
 32. The system of claim 25, wherein the user interface andthe playback module execute in different processes.
 33. The system ofclaim 25, wherein the user interface and the playback module execute inone process.
 34. The system of claim 25, wherein the user interfaceexecutes in a first process governing the operating system shell's userinterface, the playback module executes in a second process, and theuser interface includes a button to select a service that switchespresentation of media from the visual space to a second visual spacecreated by an application running in the second process.
 35. A methodcomprising: presenting a graphical user interface integrated into ataskbar user interface; and enabling, without the graphical userinterface being in perspective, a user to select media-playing servicesthrough the graphical user interface.
 36. The method of claim 35,wherein the enabling is performed also without the graphical userinterface being in focus.
 37. The method of claim 35, furthercomprising: presenting a media file in accord with the selectedmedia-playing services.
 38. The method of claim 35, further comprising:presenting a visual media file in a visual space integrated with thegraphical user interface in accord with the selected media-playingservices.
 39. The method of claim 35, further comprising: presenting avisual media file in a visual space without the visual space being inperspective.
 40. The method of claim 35, further comprising: presentinga visual media file in a visual space without the visual space being infocus.
 41. A computer-readable medium comprising computer-executableinstructions that perform the following when executed by a computer:present a media-control user interface in a first process forcontrolling services associated with playing media; and enable a userthat is actively engaged with a non-media-control user interface in asecond process to interact with the media-control user interface withoutdisengaging from the non-media-control user interface.
 42. Thecomputer-readable medium of claim 41, wherein the interaction with themedia-control user interface includes selection of a media service. 43.The computer-readable medium of claim 41, wherein the interaction withthe media-control user interface includes selection of a media serviceand consists of a single mouse click.
 44. The computer-readable mediumof claim 41, wherein the interaction with the media-control userinterface includes selection of a media service and consists of a singlecommand.
 45. The computer-readable medium of claim 41, wherein theinteraction with the media-control user interface includes selection ofa media service and consists of a single keystroke.
 46. Thecomputer-readable medium of claim 41, further comprising: providemedia-playing services based on the interaction.
 47. Thecomputer-readable medium of claim 41, further comprising: present visualmedia in a visual space if the interaction includes a selection topresent visual media.
 48. The computer-readable medium of claim 41,further comprising: present visual media with aid from a playback moduleexecuting in the first process if the interaction includes a selectionto present visual media.
 49. The computer-readable medium of claim 41,further comprising: present visual media with aid from a playback moduleexecuting in a third process if the interaction includes a selection topresent visual media.
 50. A computer-readable medium comprisingcomputer-executable instructions that perform the following whenexecuted by a computer: create a first user interface with graphicallyselectable media-control services and running in a first process; andenable selection of the media-control services while a second userinterface running in a second process remains in perspective.
 51. Thecomputer-readable medium of claim 50, wherein the media-control servicesinclude initiating and ceasing play of a media file.
 52. Thecomputer-readable medium of claim 50, wherein the selection of one ormore of the media-control services is enabled with a single mouse click.53. The computer-readable medium of claim 50, wherein the first userinterface is integrated into an operating system's taskbar.
 54. Thecomputer-readable medium of claim 50, wherein the first process is usedby an operating system for executing a taskbar.
 55. An apparatuscomprising: means for presenting a user interface in a first process forcontrolling services associated with playing media; and means forenabling a user interacting with a second process to interact with theuser interface without ceasing to interact with the second process. 56.The apparatus of claim 55, further comprising: means for playing a mediafile based on preferences received from the user during the interactionwith the user interface.